package com.pl.service;

import com.pl.entity.SysUser;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 用户信息表(SysUser)表服务接口
 *
 * @author makejava
 * @since 2024-04-24 17:26:06
 */
public interface SysUserService {

    /**
     * 通过ID查询单条数据
     *
     * @param userId 主键
     * @return 实例对象
     */
    SysUser queryById(Long userId);


    /**
     * 新增数据
     *
     * @param sysUser 实例对象
     * @return 实例对象
     */
    boolean insert(SysUser sysUser,HttpSession session);

    /**
     * 修改数据
     *
     * @param sysUser 实例对象
     * @return 实例对象
     */
   boolean update(SysUser sysUser);

    /**
     * 通过主键删除数据
     *
     * @param userId 主键
     * @return 是否成功
     */
    boolean deleteById(int userId);

    /**
     * 通过键值对 登录操作
     * @param sysUser
     * @return
     */
    SysUser login(SysUser sysUser, HttpServletRequest request, HttpSession session);



    /**
     * 分页查询列表数据 以及模糊搜索
     * @param map
     * @return
     */
    List<SysUser> queryByPage(Map<String, Object> map);

    /**
     * 批量删除
     * @param list
     * @return
     */
    boolean deleteBatch(List<Integer> list);

    /**
     * 批量插入
     * @param sysUserList
     * @return
     */
    boolean inserts(List<SysUser> sysUserList);

    /**
     * 导入文件
     * @param file
     * @return
     */
    String importSysUserFile(MultipartFile file);

    /**
     * 导出文件
     * @param response
     */
    void exportSysUserFile(HttpServletResponse response);

    boolean finAll();
}
